home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
pascal
/
datebox.exe
/
DATETEST.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1991-07-07
|
6KB
|
189 lines
program testdate;
uses datebox,crt,dos,keybrd;
{ KEYBRD is my I/O-unit; just remove it's reference and the brackets
surrounding keytype, keysettype and key in DATEBOX.PAS and everthing
will work standalone}
var buf:string;
long_i:longint;
buf_dt,buf_dt1:datetime;
language_set,i,j:integer;
ch:char;
(********************************)
procedure test_datetext;
procedure test_text(long_dt:longint);
var buf_dt:datetime;
procedure write_text(x:integer);
begin
dt_from_longdat(long_dt,buf_dt);
writeln(8+x:5,' ',datetext(buf_dt,8+x):28,' ',
10+x:5,' ',datetext(buf_dt,10+x):28);
end;
begin
case language of
0:write('English ');
1:write('Deutsch ');
2:write('Français');
3:write('Italiano');
end;
writeln;
writeln('Value:','8-digit values':30,'Value:':11,'10-digit values':31);
writeln;
write_text(0);
write_text(10);
write_text(100);
write_text(110);
write_text(1000);
write_text(1010);
write_text(1110);
write_text(10000);
write_text(10010);
writeln('Faulty value:');
write_text(3);
write_text(-773);
write_text(-7730);
end;
(********************************)
begin
{FUNCTION datetext(newdt_long:longint;long:integer):string;}
{ returns a string of the dates to print, returns different date formats
dependent upon value of long and in the different languages set with
global variable "language" (default: German, of course, set in the
initialization part of the unit DATEBOX)}
{ values of long: 8 -> 02.09.91
10 -> 02.09.1991
add 10 to eliminate leading zero's 18(20) -> 2.9.(19)91
add 100 to get 'Mon, (D)D.(M)M.(YY)YY' format
add 1000 to get 'Monday (D)D. September (YY)YY' format
add 10000 to get 'Monday (D)D. Sep. (YY)YY' format }
repeat
clrscr;
writeln('TEST DATETEXT: Enter date as a LONGINT (CCYYMMDD ie 19910331)');
writeln('No range tests! Just century may be omitted; no weekdays then!');
writeln;
readln(long_i);
i:=0;
ch:='?';
repeat
language:=i;
test_text(long_i);
if i<3 then begin
writeln;
writeln('ESC to leave procedure, ENTER to continue');
ch:=readkey;
clrscr;
end;
writeln;
inc(i);
until (ch=#27) or (i>3);
writeln;
if ch<>#27 then begin
writeln;
writeln('ESC to leave procedure, ENTER to continue');
ch:=readkey;
end;
until ch=#27;
ch:='?';
language:=language_set;
end;
(********************************)
procedure testdt_from_stringdat;
{PROCEDURE dt_from_stringdat(var s:string;var dt:datetime);} {Rudolf Regez}
{ converts date-string into datetime-date}
begin
language:=language_SET;
repeat
clrscr;
writeln('TEST DT_FROM_STRING: Enter date as a string ie March, 15th 1991');
writeln('Limit: try: "roman emperor Augustus, eating 1 apple, went to bed at 11.45pm!"');
writeln('or: "May I sell this 3 sets at $1500 each ?" (monthname is case and language');
writeln('sensitive, the strings above just work if language=English)');
writeln;
readln(buf);
dt_from_stringdat(buf,buf_dt);
if pos('?',buf)=0 then begin
write(datetext(buf_dt,10),' or ');
write(datetext(buf_dt,1020));
buf_dt1:=buf_dt;
next_day(buf_dt);
writeln('; next: ',datetext(buf_dt,10));
writeln(date_diff(sysdatetime,buf_dt1),' days from SYSTIME, which is ',
datetext(sysdatetime,1020));
end
else begin
write(#7);
writeln(buf);
end;
writeln;
writeln('ESC to leave procedure, ENTER to continue');
ch:=readkey;
until ch=#27;
ch:='?';
end;
(********************************)
procedure testread_date;
begin
language:=language_SET;
repeat
clrscr;
writeln('TEST READ_DATE: Enter date as DD.MM.(CC)YY');
writeln('the separator set (now: "',separator,'") has a certain CR-function;');
writeln('try: "2',separator,'2',separator,'" and CR or "2 CR 2 CR CR"!');
writeln('Just CR returns the system-date');
writeln;
buf:=''; {no default}
gotoxy(10,10);
read_date(buf,buf_dt,key);
if key<>escapekey then write(' ',datetext(buf_dt,1010));
writeln;
writeln;
writeln('ESC to leave procedure, ENTER to continue');
ch:=readkey;
until ch=#27;
ch:='?';
end;
(********************************)
begin
language_set:=language;
repeat
clrscr;
gotoxy(20,10);
Writeln('.....some silly tests with dates...');
writeln;
gotoxy(20,12);
writeln('1 : date output');
gotoxy(20,13);
writeln('2 : analyse date string');
gotoxy(20,14);
writeln('3 : date entry');
gotoxy(20,17);
write('enter # , ESC to leave: ');
gotoxy(25,19);
write('8 to alter separator (now: "',separator,'")');
gotoxy(25,20);
write('9 to alter language (now: "',language_set,'")');
ch:=readkey;
case ch of
'1' : test_datetext;
'2' : testdt_from_stringdat;
'3' : testread_date;
'8' : begin
writeln;
writeln('choose separator! ');
ch:=readkey;
separator:=ch;
end;
'9' : begin
writeln;
writeln('0: English, 1: German, 2: French, 3: Italian; enter #');
ch:=readkey;
if ch in ['0'..'3'] then language_set:=ord(ch)-48
else language_set:=0;
end;
#27 : halt;
else test_datetext;
end;
until ch=#27;
end.